Is there a specific reason why the router overrides a component's name prop or is it simply so you can use this.props.name instead of this.props.route.name? The current behaviour seems to make it impossible to use defaultProps.name, because the router sets it to the name of the route if no value is passed.