Maybe custom page validation by adding a new PageValidateEventHandler in Application_Start in Global.asax? You could then check the Page object in PageValidateEventArgs for Category values and react accordingly.
We ended up solving it a completely different way, but using the PageValidate event seems like a smart thing. I'll try it when a similar problem occurs.