Keeping the relationship always depends on both parties. As cliche as it sounds, I do believe that couples stay together because both of them choose to, no matter how complicated their situation is. This, in turn, requires maturity. Both parties need to understand that problems come as challenges to make them stronger and not to break them apart. They must always choose to forgive rather than to keep grudges that in the long run will resurface itself into something worse.
Another important ingredients in stable relationships would be trust, respect, and honesty. When you are in a relationship, you must keep in mind that you are sharing your life with another person. Every decision you make will impact not only your life but also your partner's. Hence, each decision, be it from simple dinner to moving out of the city, will affect how the whole relationship will evolve--and both of you should trust each other on this. Respect and honesty, on the other hand, should be the foundation of every relationship. Respect what your partner wants and be honest in what you feel. Remember that most relationships fall down due to the absence of these values, which are often rooted to lack of communication and understanding.