Error with Boost.Python when returning a reference to a custom object
===

I have two classes Nodes and Edges. The latter contains the following accessor:

    Node const& Edge::N0() const
    {
      return n0;
    };

where n0 is a private reference to a Node() instance. The problem is that, while trying to expose this function with the following code:

    class_<Edge>("Edge", init<Node&,Node&>())
        .add_property("n0",&Edge::N0,return_internal_reference<>());

(the class Node is exposed right before) 
I get an impressive amount of error messages from the Boost.Python includes. I read on http://stackoverflow.com/questions/11143634/intermittent-error-returning-an-internal-reference-with-boost-python that using return_internal_reference<> is impossible when the function outputs types that are considered immutable by python. But it doesn't seem to me that my Node object should be considered as such by python. 

Can anyone explain to me what is wrong with what I am doing? I am pretty new to C++ and Boost.Python and admittedly don't understand much about the call policies yet.