modified(name, index) {
      const mod = this[CACHE];
      if (!arguments.length) {
        for (const k in mod) {
          if (mod[k]) return true;
        }
        return false;
      } else if (isArray(name)) {
        for (let k = 0; k < name.length; ++k) {
          if (mod[name[k]]) return true;
        }
        return false;
      }
      return index != null && index >= 0 ? index + 1 < mod[name] || !!mod[index + ':' + name] : !!mod[name];
    }
Tests if one or more parameters has been modified. If invoked with no
arguments, returns true if any parameter value has changed. If the first
argument is array, returns trues if any parameter name in the array has
changed. Otherwise, tests if the given name and optional array index has
changed.
@param {string} name - The parameter name to test.
@param {number} [index=undefined] - The parameter array index to test.
@return {boolean} - Returns true if a queried parameter was modified.