Routing: Introducing unittests for core app router classes

This PR introduces a large chunk of unittests to document the behavior of the core application routing classes.

This was made possible through the generous donation of the people mentioned in the following link via an Indiegogo campaign: http://joomlager.de/crowdfunding/5-contributors
can we not merge this if in with the if/else directly above here that has the same check?