docs: function regexBodyMatch(path, ruleSet, body, expectedBody){
  
      //Add 'body' to json path because it's expecting that additional element
      var matchingObjects = jsonPath({json: {body: body}, path: path});
      var matchingExpectedObjects = jsonPath({json: {body: expectedBody}, path: path});
  
      if(ruleSet.hasOwnProperty("min")){
  
          var failing = matchingObjects.map(function(match){
              if(match.length < ruleSet.min){
                  return {
                      error: "failed to meet minimum for :" + path,
                      expected: ruleSet.min,
                      actual: match.length
                  };
              }
          }).filter(function(f){
              return !!f;
          });
  
          if(failing.length){
              return failing[0];
          }
      }
      if(ruleSet.hasOwnProperty("max")){
          var failing = matchingObjects.map(function(match){
              if(match.length > ruleSet.max){
                  return {
                      error: "failed to meet maximum for :" + path,
                      expected: ruleSet.min,
                      actual: match.length
                  };
              }
          }).filter(function(f){
              return !!f;
          });
          if(failing.length){
              return failing[0];
          }
      }
      if(ruleSet.hasOwnProperty("match") && ruleSet.match === "type"){
          var typeCheckFailure = checkTypeMatch(matchingObjects, matchingExpectedObjects, path);
          if(typeCheckFailure){
              return typeCheckFailure;
          }
      }
      if(ruleSet.hasOwnProperty("match") && ruleSet.match === "regex"){
          if(!checkRegexMatch(ruleSet, matchingObjects)){
              return {
                  error: "Unable to match regex: ",
                  expected: ruleSet.regex,
                  actual: matchingObjects
              };
          }
      }
      return false; //All appears ok, no apparent matching errors
  }