docs: function enterClustered(states, opts) {
      var selflen = _path.call(this).length,
          nexts   = [],
          state, paths, cur, next, i, n;
  
      for (i = 0, n = this.substates.length; i < n; i++) {
        if (this.substates[i].__isCurrent__) { cur = this.substates[i]; break; }
      }
  
      for (i = 0, n = states.length; i < n; i++) {
        nexts.push(_path.call(states[i])[selflen]);
      }
  
      if (uniqStates(nexts).length > 1) {
        throw new Error("State#enterClustered: attempted to enter multiple substates of " + this + ": " + nexts.join(', '));
      }
  
      if (!(next = nexts[0]) && this.substates.length > 0) {
        if (this.__condition__ && (paths = this.__condition__.call(this, opts.context))) {
          paths  = flatten([paths]);
          states = [];
          for (i = 0, n = paths.length; i < n; i++) {
            if (!(state = this.resolve(paths[i]))) {
              throw new Error("State#enterClustered: could not resolve path '" + paths[i] + "' returned by condition function from " + this);
            }
            states.push(state);
          }
          return enterClustered.call(this, states, opts);
        }
        if (this.history) { next = this.__previous__; }
        if (!next) { next = this.substates[0]; }
      }
  
      if (cur && cur !== next) { exit.call(cur, opts); }
  
      if (!this.__isCurrent__ || opts.force) {
        trace.call(this, "State: [ENTER]  : " + this.path() + (this.__isCurrent__ ? ' (forced)' : ''));
        this.__isCurrent__ = true;
        callEnterHandlers.call(this, opts.context);
      }
  
      if (next) { enter.call(next, states, opts); }
  
      return this;
    }