Best way to find node neighborhood?

Thank you all so much. Very informative.

@andrew_bowman:
About your comment: you should really use labels here, and create an index to support fast lookup by property I do this :

MATCH (s:User)
WHERE s.name = 'f4b1'
RETURN [(s)<--(t) | t.name] as In, [(s)-->(t) | t.name] as Out

name is unique per user, I just create an constraint like this:
CREATE CONSTRAINT ON (n:User) ASSERT n.name IS UNIQUE

If name isn't unique per user, J just create a plain index instead:
CREATE INDEX ON :User(name)

Is that correct?