Cache the StepMatcher on the StepCandidate.  They're not that big (~1k
each) and recreating and recompiling the regex pattern every time is
insanely expensive.