function set(key, value) {

  // First we need to attempt to see if the relation is not flawed
  if (this.items.has(key)) {
    var currentValue = this.items.get(key);

    // The relation already exists, we do nothing
    if (currentValue === value)
      return this;
    else
      this.inverse.items.delete(currentValue);
  }

  if (this.inverse.items.has(value)) {
    var currentKey = this.inverse.items.get(value);

    if (currentKey === key)
      return this;
    else
      this.items.delete(currentKey);
  }

  // Here we actually add the relation
  this.items.set(key, value);
  this.inverse.items.set(value, key);

  // Size
  this.size = this.items.size;
  this.inverse.size = this.inverse.items.size;

  return this;
}
Method used to set a relation.

@param  {any} key - Key.
@param  {any} value - Value.
@return {BiMap|InverseMap}