Allow protocols to have both app layer keywords, as well as transaction

based ones.

Our general logic and assumption is protocols either support one of the
above and not have both.