Revert the "Non url params can be passed to router.state() for later use" feature as it doesn't make much sense conceptually, is cumbersome to fully support/maintain and is simple to simulate with a local var or similar.
Replace when.js with Q.js

Pros:
- Q is more popular, with almost 10 times more downloads
- Q coerces any thenable into a Q promise (useful when returning promises in enter/exit prereqs)

Draw:
- Q is a bigger library. However it has a richer API and since it's used in more projects , the difference in size may be nulled when using a modular build.
Add Router.previousState()
Update README
Anchor interception can also operate on mousedown events
Add the state.update callback for more lightweight updates while the state is active
- Store custom state data properties in their own object for less magic and collisions.
- 4.0.0 cutoff.