only apply one matching operation - sort by specificity
fix bug in message iteration