Level 3 Child routers

To make a child router we need reference to parent router, for level 3 child routers it will be necessary to expose level 2 child routers, which makes modules tightly coupled.
By providing some way to introduce parent router to modules, it will be easier to create child routers.
A child module can provide getRouter which gets parent router as parameter and must return some child router.