merge(element1, element2, ...rest) {
    if (rest.length > 0) {
      this.merge(element2, ...rest);
    }

    this._introduce(element1);
    this._introduce(element2);
    const root1 = this.root(element1);
    const root2 = this.root(element2);

    if (this._ranks[root1] < this._ranks[root2]) {
      this._parents[root1] = root2;
      this._sizes[root2] += this._sizes[root1];
    } else if (root1 !== root2) {
      this._parents[root2] = root1;
      this._sizes[root1] += this._sizes[root2];
      if (this._ranks[root1] === this._ranks[root2]) {
        this._ranks[root1] += 1;
      }
    }
    return this;
  }
Merge subsets containing two (or more) given elements into one.
Complexity: O(A^-1) (inverse Ackermann function) amortized.

@param {*} element1
@param {*} element2
@param {...*}
@return {DisjointSetForest}