Look for negihbours of the `element`, return proper :class:`PathCall`.

    Args:
        element (obj): HTMLElement instance of the object you are looking for.

    Returns:
        list: List of :class:`PathCall` instances.

def neighbours_pattern(element):
    """
    Look for negihbours of the `element`, return proper :class:`PathCall`.

    Args:
        element (obj): HTMLElement instance of the object you are looking for.

    Returns:
        list: List of :class:`PathCall` instances.
    """
    # check if there are any neighbours
    if not element.parent:
        return []

    parent = element.parent

    # filter only visible tags/neighbours
    neighbours = filter(
        lambda x: x.isTag() and not x.isEndTag() or x.getContent().strip() \
                  or x is element,
        parent.childs
    )
    if len(neighbours) <= 1:
        return []

    output = []
    element_index = neighbours.index(element)

    # pick left neighbour
    if element_index >= 1:
        output.append(
            _neighbour_to_path_call(
                "left",
                neighbours[element_index - 1],
                element
            )
        )

    # pick right neighbour
    if element_index + 1 < len(neighbours):
        output.append(
            _neighbour_to_path_call(
                "right",
                neighbours[element_index + 1],
                element
            )
        )

    return output