He said he’s stupid because that is his excuse for not giving you what you want — an engagement and marriage. If he can excuse himself this way by noting that you’re obviously not stupid, he is, then you’re the smart one for wanting what you want and by default, he’s the dummy. That’s his simplified explanation for not wanting to get married to you now.
However…you are not going to get what you want by pursuing this tact. I’d advise you to stop talking to him about this subject — if he wants to get engaged, he will. And clearly, he doesn’t. After five years with him, it’s time for you to pack up and find someone who does want to marry you if that’s your goal for yourself. It’s not fair for you to impose your goal on him if he doesn’t want marriage.
Trust me — your boyfriend is not stupid, and he’s not a dummy. He just doesn’t want to get married right now.