docs: function merge(dest, src) {
          if (dest instanceof Object && src instanceof Object) {
              Object.keys(src).forEach(function (key) {
                  if (!dest[key] || !(dest[key] instanceof Object && src[key] instanceof Object)) {
                      dest[key] = src[key];
                  } else { // both objects, so merge
                      merge(dest[key], src[key]);
                  }
              });
          }
          return dest;
      }