overwrite when same args

if when was set with same args the mock does not changed its return value
when(someMock.foo).isCalledWith('bar').thenReturn('apple');
someMock.foo('bar') // 'apple'
when(someMock.foo).isCalledWith('bar').thenReturn('pear');
someMock.foo('bar') // 'apple'

this patch fixes it