docs: function supersede(target, source, force, deepStringMixin) {
      if (source) {
          eachProp(source, function (value, prop) {
              if (hasProp(target, prop)) {
                  if (deepStringMixin && typeof value === 'object' && value && !isArray(value) && !isFunction(value) && !(value instanceof RegExp)) {
  
                      if (!target[prop]) {
                          target[prop] = {};
                      }
                      supersede(target[prop], value, force, deepStringMixin);
                  } else {
                      target[prop] = value;
                  }
              }
          });
      }
      return target;
  }