docs: private List<Tuple> tuplesResult(EntityKey[] keys, TupleContext tupleContext, ClosableIterator<NodeWithEmbeddedNodes> nodes) {
  		// The list is initialized with null because some keys might not have a corresponding node
  		Tuple[] tuples = new Tuple[keys.length];
  		Transaction tx = transaction( tupleContext );
  		while ( nodes.hasNext() ) {
  			NodeWithEmbeddedNodes node = nodes.next();
  			for ( int i = 0; i < keys.length; i++ ) {
  				if ( RemoteNeo4jHelper.matches( node.getOwner().asMap(), keys[i].getColumnNames(), keys[i].getColumnValues() ) ) {
  					EntityKeyMetadata metadata = keys[i].getMetadata();
  					EntityKey key = keys[i];
  					BoltNeo4jEntityQueries entityQueries = getEntityQueries( key.getMetadata(), tupleContext );
  					Map<String, Node> toOneEntities = BoltNeo4jAssociatedNodesHelper.findAssociatedNodes( tx, node, metadata,
  							tupleContext.getTupleTypeContext(), entityQueries );
  					tuples[i] = new Tuple(
  							new BoltNeo4jTupleSnapshot(
  									node,
  									metadata,
  									toOneEntities,
  									tupleContext.getTupleTypeContext() ),
  							SnapshotType.UPDATE );
  					// We assume there are no duplicated keys
  					break;
  				}
  			}
  		}
  		return Arrays.asList( tuples );
  	}