You should break up with him. He is taking you for granted. He knows he can leave whenever he wants and come back. You will be waiting for him with open arms. Now if you forgive him he is also going to know he can also cheat on you and get away with it. I would say totally move on and find someone else but if you are saying you are so in love then you still need to make a stand so he will stop taking you for granted. If he really loves you he will try to make things better if he doesn't then you know he doesn't worth it. It sounds like that relationship is toxic to you. Break ups are never easy but I think if you cut all ties you will feel so much better in few months. I know it is easier to say than do. So good luck!