evaluate each rule type only once and move ContentSet to separate plugin
do not accidentally pick up pseudoelements with * selector