Play2.1.0で、異なるURLに対して同じメソッドを割り当てると、"unreachable code"というwarningが出る件

routesに

GET   /foo               FooController.hoge
GET   /foo/bar        FooController.hoge

って書くと、/foo にアクセスしても、 /foo/bar にアクセスしても、とりあえずはちゃんとFooControllerのhogeメソッドは呼ばれる。
なんで警告になるか考えてみて、

target/scala-2.10/src_managed/main/routes_reverseRouting.scala

というファイルを見たら以下のようになっていたので、多分これが原因

// @LINE:40
// @LINE:39
class ReverseFooController {


// @LINE:40
// @LINE:39
def index(): Call = {
   () match {
// @LINE:39
case () if true => Call("GET", _prefix + { _defaultPrefix } + "foo")

// @LINE:40
case () if true => Call("GET", _prefix + { _defaultPrefix } + "foo/bar")

   }
}


}

何に使ってるのかはまだ調べてないが、routes_reverseRouting.scalaという名前の通り、
「URL => メソッド」
とは別に
「メソッド => URL」という逆の対応付けのScalaコードのファイル
が裏で生成されているわけだが、こいつがこういう場合を考慮していないので、ここで警告が出る。なおかつ、以下のようなSourceMappingという仕組み

があるので
「生成後のファイルではなく、もとのroutesのファイルの行番号のみ表示されるのでわかりにくい!」という現象がおきているんだと思う。

routes_reverseRouting.scalaが何に使われているのか?とか、その他詳しくことわかったら追記するか、別に書くコメントもらったので、それ読みましょう!