code: public void applyConnectedOnce(final String filter, final TileFunction<VectorTile> callback,
  			final Map<String, VectorTile> updatedTiles) {
  		apply(filter, new TileFunction<VectorTile>() {
  
  			public void execute(VectorTile tile) {
  				updatedTiles.put(tile.getCode().toString(), tile);
  				callback.execute(tile);
  				List<TileCode> tileCodes = tile.getCodes();
  				for (TileCode tileCode : tileCodes) {
  					if (!updatedTiles.containsKey(tileCode.toString())) {
  						VectorTile temp = tile.cache.addTile(tileCode);
  						updatedTiles.put(tileCode.toString(), temp);
  						temp.apply(filter, callback);
  					}
  				}
  			}
  		});
  	}
docs: Execute a {@link TileFunction} in this tile and all connected tiles. Only tiles which are not yet included in
  updatedTiles are processed. Tiles are added in updatedTiles when processed. If these connected tiles are not yet
  part of the cache, then they will be fetched before applying the {@link TileFunction} on them.
  
  @param filter A filter that needs to be used in case connected tile need to be fetched.
  @param callback The {@link TileFunction} to execute on the connected tiles.
  @param updatedTiles list of already processed tiles to assure tiles are only processed once