def duplicate_node(graph, node, connectToNeighbours):
    """
    Duplicates node in a graph, *not* including all ingoing and outgoing edges
    
    @type  graph: GraphWrapper
    @param graph: the graph in which to duplicate the node
    
    @type  node: graph_representation.node.Node
    @param node: node to duplicate
    
    @type  connectToNeighbours: boolean
    @param connectToNeighbours: indicating wheter the duplicated node should be connected to the
                                neigbours of the original node
    
    @rtype  Node
    @return the duplicated node
    """
    dupNode = node.copy()
    dupNode.isDuplicated = True
    graph.add_node(dupNode)
    
    if connectToNeighbours:
        for curNeighbour in graph.neighbors(node):
            graph.add_edge((dupNode, curNeighbour), graph.edge_label((node, curNeighbour)))
    
    return dupNode