Would it be nicer to check once at the beginning of link() if the target state is navigable and either fail if it isn't or disable the directive?