Yep, that's by design.
In your scenario, if you want to define a base set of routes, you can do a couple of things. One option would be to simply define them on instantiation. This could be done by overriding #initialize (ensuring you call #super), or be using Ruby's `inherited` hook method.
Another option (which I personally prefer) would be to essentially set your base class as the `root` controller, mounting the sub-class to it as mapping. In other words, using sub-controllers (a controller mapped to a controller). I've left a comment on your gist showing this.
It all depends on exactly what you're trying to achieve, but there's definitely many potential solutions for this one.