public ExtendedIterator<Domain> executeBindings(
     List<Stage> outStages, NamedGraphMap args, Node[] nodes) {
   Mapping map = new Mapping(nodes);
   ArrayList<Stage> stages = new ArrayList<Stage>();
   addStages(stages, args, map);
   if (constraint.isComplex()) stages.add(new ConstraintStage(map, constraint));
   outStages.addAll(stages);
   variableCount = map.size();
   return filter(connectStages(stages, variableCount));
 }
 private static NamedTripleBunches asNamedTripleBunches(List<Triple> pattern) {
   NamedTripleBunches result = new NamedTripleBunches();
   for (Iterator<Triple> elements = pattern.iterator(); elements.hasNext(); )
     result.add(NamedTripleBunches.anon, elements.next());
   return result;
 }