         ) == true
 
       describe 'objects containing matchers', ->
+        Then -> @matches(td.matchers.contains({a: td.matchers.contains(1,2)}),
+            {a: [4,1,2,3]}
+          ) == true
+        Then -> @matches(td.matchers.contains({a: td.matchers.contains(1,5)}),
+            {a: [4,1,2,3]}
+          ) == false
         Then -> @matches(
             td.matchers.contains({someString: td.matchers.isA(String)}),
             {someString: "beautifulString"}

      Then -> @matches(td.matchers.contains(true, 5, null, undefined), [true, 5, undefined, null]) == true
      Then -> @matches(td.matchers.contains(true, 5, null, undefined), [true, 5, null]) == false

    context 'objects', ->
      Then -> @matches(td.matchers.contains(foo: 'bar', baz: 42), foo: 'bar', baz: 42, stuff: this) == true
      Then -> @matches(td.matchers.contains(foo: 'bar', lol: 42), foo: 'bar', baz: 42) == false

            }),
            {nested: {nestedString: "abc", irrelevant: true}, irrelevantHere: "alsoTrue"}
          ) == true
        Then -> @matches(
            td.matchers.contains({
              nested: td.matchers.contains({
                nestedString: td.matchers.isA(Number)
              })
            }),
            {nested: {nestedString: "abc", irrelevant: true}, irrelevantHere: "not a number!"}
          ) == false


    context 'regexp', ->
