docs: function(requesters, parent) {
  			if (this.satisfied()) { return null; }
  			requesters = requesters || {};
  			var id = this.id;
  			if (requesters[id] && !parent.allowed[id]) {
  				return [parent, this];
  			}
  
  			requesters[id] = this;
  
  			var depends = this.depends;
  			for(var name in depends) {
  				if (!depends.hasOwnProperty(name)) { continue; }
  				var depend = depends[name],
  					result = depend.cycle(requesters, this);
  				if (result) { return result; }
  			}
  
  			delete requesters[id];
  			return null;
  		}