bool advance_route(std::list<RouteRef>::iterator &, Track &);
Route *create_lead_route(Route *, const Route *);
bool is_valid_diversion(const Route &, Track &, unsigned);
bool advance_route(std::list<RouteRef>::iterator &, Track &);
Route *create_lead_route(Route *, const Route *);
bool is_valid_diversion(const Route &, Track &, unsigned);