title: Iron Router onBeforeAction isn't being called
body: <p>I have a <code>/user</code> route set up, which is supposed to render the <code>login</code> template if the current user isn't logged in. The entire router has a <code>waitOn</code> that waits for the <code>currentUser</code> subscription to finish. The problem is that when I go to <code>/user</code> it simply renders the <code>dataNotFound</code> template instead.</p>
  
  <p>Here's the snippets of code that are relevant to this situation. I've been careful to show you them in the order they're defined in my <code>lib/router.js</code> file.</p>
  
  <pre><code>Router.plugin('dataNotFound', {notFoundTemplate: 'notFound'});
  
  Router.onBeforeAction(function () {
      console.log(Meteor.userId())
      if (!Meteor.userId()) this.render('login');
      else this.next();
  }, { only: ['user'] });
  
  Router.configure({
      waitOn: function () { return Meteor.subscribe('currentUser'); }
  });
  
  Router.route('/user', {
      name: 'user',
      template: 'userView',
      data: function () { return Meteor.user(); }
  });
  </code></pre>
  
  <p>That <code>console.log</code> above doesn't even ever fire. It seems to me that since it should be a reactive function that even if initially the <code>dataNotFound</code> is rendered, then soon after that the <code>onBeforeAction</code> should be fired and render the <code>login</code> template, right?</p>