Added problem 23.  Added support for arbitrary matchers (useful for determining
if results based on random behaviors match the specified contract).