def get_neighbours(position, width, height, grown, up, down):
    """
    Return connected neighbours that are not already "grown" (i.e. added to the region)
    """
    x = position[0]
    y = position[1]
    neighbours = []

    # Left
    if x > 0 and not grown[y, x - 1]:
        neighbours.append((x - 1, y))

    # Up
    if up and y > 0 and not grown[y - 1, x]:
        neighbours.append((x, y - 1))

    # Right
    if x < width - 1 and not grown[y, x + 1]:
        neighbours.append((x + 1, y))

    # Down
    if down and y < height - 1 and not grown[y + 1, x]:
        neighbours.append((x, y + 1))

    return neighbours