EventedMind/iron-router — pull request #838 by hellogerard (2014-09-19 03:58:26+00:00)
Title: Implement 'pass' function to skip to next matching route

Hey @cmather, @tmeasday,

New feature: a route can tell iron-router to continue to the next matching route using the `pass()` method. When this method is invoked, iron-router will immediately stop processing the current matching route and invoke the next matching route. If no subsequent matching route is found, `onRouteNotFound()` is called.

Example:

```
Router.map(function() {
this.route('thisWillNeverRender', {
path: '*',
onBeforeAction: function() {
this.pass();
}
});
this.route('hello', {
path: '/hello'
});
});
```

Requesting `/hello` will render the `hello` template. Requesting anything else will result in an `onRouteNotFound()`. `pass()` works on the server as well.

The idea for this feature was brought about because of a [`meteor-blog` issue](https://github.com/Differential/meteor-blog/issues/94), where we wanted the blog to handle any incoming slug to see if it was a blog post, and then pass the request on if it wasn't.

WDYT?