That's true, no dashes are allowed in class names: this is why `getControllerClassName` exists.  It shouldn't be necessary to have the `str_replace` in both places.  I believe the original spirit was to have URL paths map to file paths (as much as makes sense; not validating security) and to have class names CamelCased (see [PHP Rules](http://www.php.net/manual/en/userlandnaming.rules.php)).