routes property
The stack, bottom to top.
A route taken off the stack is still a child until the next flush, so what is leaving is filtered out rather than waited on.
Implementation
Iterable<RouteNode> get routes => _routes.where((route) => !route.isRemoving);