             }),
             {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', ->

        ) == true

      describe 'objects containing matchers', ->
        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

      describe 'elements containing matchers', ->
        Then -> @matches(td.matchers.contains('b', td.matchers.isA(Number)), ['a', 3, 'b']) == true

    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
