I just spent an embarrassing amount of time debugging why my ExtractFrontMatter module wasn't working, as it wasn't outputting the new modules with the front matter removed. It turns out that I had to pass in a ParseYaml or similar module to do the actual parsing of the frontmatter, or else it will not do anything. This wasn't clear from the documentation.
I suggest throwing an exception if no child module is passed, to prevent others from wasting multiple hours pulling their hair out trying to figure out how this framework works and why it's not doing what you expect :)