Add getMatchedRouter() function to Router object.

The Router object will now remember the route it matched so it can be
fetched again without repeating the whole matching process (which can be
costly if there are a lot of routes).

Also added lots of tests for the new functionality.
Merge pull request #39 from djmattyg007/remember_matched_route

Add getMatchedRoute() function to Router object.