Instead of trying to aggregate by packet, wouldn't it be more effective by managing sessions?
Once a session establishes a route, maintain it. Add logic to prioritize routes by session importance.