This additional constraint enables adding a route to the template (and p...

...otentially to the UseMvc method) without actually implementing the actual artifact.

For example without adding an area to a controller, a route can still be added to the template.
The value can be none string only if you set default value to be not a string. probably wrong but in that case we just don't match the constraint, why would we go out of our way to throw?