title: Expression<Func<T, bool>> with It.IsAny always return true
body: <p>I'm trying to create a generic testclass to test my generic controllers. Everything is working fine except this:
  I have a method like this: </p>
  
  <pre><code>private T GetSingle(Expression&lt;Func&lt;T, bool&gt;&gt; expression)
  </code></pre>
  
  <p>I'm trying to setup the test like so:</p>
  
  <pre><code>var Guids = new[] { Guid.NewGuid(), Guid.NewGuid() };
  var items = Guids.Select(x =&gt; new T {Id = x});
  var mock = new Mock&lt;IRepository&lt;T&gt;&gt;();
  mock.Setup(m =&gt; m.GetSingle(
      It.IsAny&lt;Expression&lt;Func&lt;T, bool&gt;&gt;&gt;()))
     .Returns(new T());
  </code></pre>
  
  <p>And execute the test like this:</p>
  
  <pre><code>var value = Repository.GetSingle(x=&gt; x.Id == Guid.NewGuid());
  </code></pre>
  
  <p>This <em>always</em> return a new T. </p>
  
  <p>Is my setup wrong?</p>