def METHOD_NAME(create, select):
    v1 = create(PseudostateItem, UML.Pseudostate)
    v2 = create(StateItem, UML.State)
    t = create(TransitionItem)
    # connect head of transition to an initial pseudostate
    connect(t, t.head, v1)
    assert t.subject is None
    # connect tail of transition to a state
    connect(t, t.tail, v2)
    assert t.subject is not None
    assert len(select(UML.Transition)) == 1
    assert t.subject == v1.subject.outgoing[0]
    assert t.subject == v2.subject.incoming[0]