title: Using Pact.eachLike() when array contents vary for each item
body: <p>Hi I have a Consumer test produced using Pact NPM <a href="https://www.npmjs.com/package/pact" rel="nofollow noreferrer">https://www.npmjs.com/package/pact</a></p>
  
  <p>I use the following code to generate a pact.json:</p>
  
  <pre><code>provider
      .addInteraction({
          state: 'test',
          uponReceiving: 'a test,
          withRequest: {
            method: 'GET',
            path: '/test'
          },
          willRespondWith: {
              status: 200,
              headers: { 'Content-Type': 'application/json' }
              body: {
                  "company": like("My big company"),
                  "factories": eachLike({
                      "location": like("Sydney"),
                      "capacity": like(5)
                  },{min:1})
              }
          }
      })
      .then(function(){ done(); });
  </code></pre>
  
  <p>It generates the following testconsumer-testprovider.json file:</p>
  
  <pre><code>{
    "consumer": {
      "name": "TestConsumer"
    },
    "provider": {
      "name": "TestProvider"
    },
    "interactions": [
      {
        "description": "a request for loans",
        "providerState": "broker is logged in, list all loans",
        "request": {
          "method": "GET",
          "path": "/test"
        },
        "response": {
          "status": 200,
          "headers": {
            "Content-Type": "application/vnd.hal+json"
          },
          "body": {
            "company": "My big company",
            "factories": [
              {
                "location": "Sydney",
                "capacity": 5
              }
            ]
          },
          "matchingRules": {
            "$.headers.Content-Type": {
              "match": "regex",
              "regex": "application\\/.*json.*"
            },
            "$.body.company": {
              "match": "type"
            },
            "$.body.factories": {
              "min": 1
            },
            "$.body.factories[*].*": {
              "match": "type"
            },
            "$.body.factories[*].location": {
              "match": "type"
            },
            "$.body.factories[*].capacity": {
              "match": "type"
            }
          }
        }
      }
    ],
    "metadata": {
      "pactSpecification": {
        "version": "3.0.0"
      }
    }
  }
  </code></pre>
  
  <p>However when we test against the following provided output we get an error with the geographicCoords because it's an unexpected key/value:</p>
  
  <pre><code>{
      "company": "My Company",
      "factories": [
          {
              "location": "Sydney",
              "capacity": 5
          },
          {
              "location": "Sydney",
              "geographicCoords": "-0.145,1.4445",
              "capacity": 5,
          }
      ]
  }
  </code></pre>
  
  <p>So is there a was to allow unexpected key/values in arrays because we're only test for required key/values and we don't want out pact tests to fail in future when new values are added to our providers.</p>