Well ... a class can't implement iterator and iteratorAggregate at the same time so we are pretty much fucked up, given that RouteCollection is the thing people people typehint. One way would be to override getIterator and prodive a total different class for it.