riot.jsのrouterを試してみた

<foo>
  <a href="#tag1">tag1</a>
  <a href="#tag2">tag2</a>
  <bar />

  <script>
    this.on('mount', function() {
      riot.route.start()

      // routerに変更があったら実行される
      riot.route(function(tag) {
        // <bar /> に tag を展開する
        riot.mount('bar', tag)
      })

      // ブラウザをリロードした時用
      riot.route(location.hash.replace('#', ''))
    })
  </script>
</foo>

<tag1>
  <h3>tag1</h3>
</tag1>
<tag2>
  <h3>tag2</h3>
</tag2>

当然この使い方だとカバーしきれないケースが出てくるので、もうちょっと良い方法を探したい。