Delegate to private methods

Previously if a class delegated to a private method the `matches?`
method would return `false`. This was because`respond_to?` always
returns `false` for private methods, this commit fixes this by making
`respond_to?` evaluate private methods.