def expand_region_with_neighbors(G, region):
    """Expands a given region with its neighboring nodes according to the graph.
    
    Args:
         G: The spatial connectivity graph over the input points.
         region: The set of points currently in the region.
                  
    Returns:
         The expanded region.
    """

    # Collect POIs neighboring a given region according to the graph
    neighbors = [n for v in region for n in list(G[v]) if n not in region]
    
    region_ext = set(region.copy())
    # update region
    for n in neighbors:
        region_ext.add(n)
    
    return region_ext