Crossroads.js is a routing library inspired by URL Route/Dispatch utilities present on frameworks like Rails, Pyramid, Django, CakePHP, CodeIgniter, etc... It parses a string input and decides which action should be executed by matching the string against multiple patterns.
If used properly it can reduce code complexity by decoupling objects and also by abstracting navigation paths.
See project page for documentation and more details.
This library requires JS-Signals to work.