This docstring mentions custom matchers but the code below does not use any as far as I can tell.  This is important, because DSL-defined custom matchers define singleton methods in their implementation and will only work when `clone`d, not when `dup`d -- as your specs stand, I think that these would pass if you used `dup` in your `initialize_copy` method rather than `clone`.