extend(group, selectors) {
    var map = this.map
      , self = this
      , parent = this.closestGroup(group.block);

    group.extends.forEach(function (extend) {
      var groups = map[extend.selector];
      if (!groups) {
        if (extend.optional) return;
        groups = self._checkForPrefixedGroups(extend.selector);
        if (!groups) {
          var err = new Error('Failed to @extend "' + extend.selector + '"');
          err.lineno = extend.lineno;
          err.column = extend.column;
          throw err;
        }
      }
      selectors.forEach(function (selector) {
        var node = new nodes.Selector;
        node.val = selector;
        node.inherits = false;
        groups.forEach(function (group) {
          // prevent recursive extend
          if (!parent || (parent != group)) self.extend(group, selectors);
          group.push(node);
        });
      });
    });

    group.block = this.visit(group.block);
  }
Apply `group` extensions.

@param {Group} group
@param {Array} selectors
@api private