I'm not trying to shame you in any way, or tell you what to do. Just saying, 4 years isn't a long time. Like I said, I made it 10 years without her finding out. She was absolutely shocked when I slipped and she found out. It made her realize that I am apparently amazing at living a double life, and lying. The result was total destruction of trust, and eventually, the relationship. All I'm asking is that you consider how valuable the relationship is for you. In my case I think I subconsciously wanted her to find out so the relationship could end. I was playing a big game with myself and her and almost daring the house of cards to come tumbling down. I would never do that again. My girlfriend now wishes I would be less crazy, but she knows what I do and accepts it, as long as I don't lie to her about it. The difference in how it makes ME feel to not be living a lie is huge. Even if you don't think it does, I think that constantly lying and being deceptive takes a big toll on you. It did for me, anyway, but I didn't recognize that until I stopped.
The chances are nearly 100% that eventually the truth will come out, and when it does, it will be very difficult, or impossible, to rebuild that trust, so just keep that in mind. I also thought I would be able to keep it up indefinitely..
Another thing is, someone shouldn't control you like that. If your lifestyle and choices is incompatible with someone to the point you have to live a double life, it may be that that person actually isn't right for you.