(enhancement) Use Router factory to provide router
(fix) When same module definition is encountered, update its dependency list
(clean) Add more comments on additional dependencies for same module