more elegant multicast

This version is inspired by the choice keyword. It uses the same behavior as the sub keyword (using the direct component) to create new routes.
For me castTo is not a good name, it's to similar to the meaning of the requireAs and as keyword