Add a protected routes component

This allows routes to be created and protected with a protection domain.