Had a brief chat with @puncsky about this on Friday. Legacy MVC special-cases controller here, and `[NonAction]` is action an `ActionMethodSelectorAttribute` which is a bit bizarre - because technically in legacy MVC it still **is** an action, it's just not reachable. 

I like using `[NonAction]` to block discovery much better, because it keeps the ADs from showing up.

The other comment from looking at the legacy is that we need to do `GetBaseDefinition()` to check if the method was defined by object - and look for inherited `[NonAction]`. This will prevent overridden `.Equals()` and overridden `.RedirectToAction(...)` (respectively) from being actions.