@Override
	public int match(String[] argsToTest) {

		// args must contain one of the required pairs
		int errorCount = 0;
		for (String[] requiredElem : required) {
			boolean found = false;

			for (String testArg : argsToTest) {
				if (isCommandArg(testArg)) {
					if (matches(testArg, requiredElem)) {
						found = true;
					}
				}
			}
			if (!found) {
				addMismatch(requiredElem);
				errorCount++;
			}
		}

		if (errorCount == 0) {
			return Constants.OK;
		}
		return Constants.ERROR;

	}