Return type now includes matched.

The matched boolean indicates whether a match was made and
will be the 0th element of the resultant list. The remaining
elements (if any) will be OFSideEffect objects.