docs: function sequence ( map, components, results, missing, recursive, nest ) {
    components.forEach( component => {
      if ( results.indexOf( component ) !== -1 ) {
        return; // de-dup results
      }
  
      const deps = map.get( component );
  
      if ( ! deps ) {
        missing.push( component );
      } else if ( nest.indexOf( component ) > -1 ) {
        nest.push( component );
        recursive.push( nest.slice(0) );
        nest.pop( component );
      } else if ( deps.length ) {
        nest.push( component );
        sequence( map, deps, results, missing, recursive, nest ); // recurse
        nest.pop( component );
      }
      results.push( component );
    });
  }