I don't know about you but I'm finding these variable names super-confusing `fmm` and fmr` are so close visually.  Perhaps `matchers` and `replacements` as variable names?