Gleb, when I see you posting this types of things I wonder how your storing this data. I imagine you having a room with post its and strings. If you haven't looked into Neo4j, check it out, it's a free graph database. You can create nodes (nosql records of any data) and connect them with as many arbitrary relationships as you want. The relationships themselves can have properties example:
[Josh] ----- Fucked a ----> [Rabbit] --- eats --> [Grass] <--- sprayed with --- [Monsanto Herbicide]
You can then visualize these nodes and relationships and ask things like "Is Josh connected to Monsanto ?" and see the path. It's good at answering the how am I connected to Kevin Bacon question. I haven't used it for a long time but it was easy to setup and has a web interface to visualize and add data. May be able to find connections not obvious when the data sets get large.