Dynamic ignore

Allows passing a callback to the `go`, `back` and `forward` routers to dynamically determine if a particular route should be triggered.