Resolve view classes for templates with dashed filenames

This adds the ability to use template names with dashes instead of underscores (e.g. *some-template.mustache* instead of *some_template.mustache*), and still have their view classes resolved.