In the fairy tale world of Once Upon a Time, Snow and Charming visit Glinda the good witch and find out that light magic can defeat the Wicked Witch but they need to get her pendant away from her.
The realize that Emma is the key and decide to enact the dark curse but Snow must crush Charming's heart to do it. Afterwards, Snow has Regina split her heart in two so that she and Charming can share it and he will survive.
When Zelena finds out about the curse she enacts a spell to eliminate their memories. Neal manages to break apart from Rumpel's body and send Hook the memory potion and the message to find Emma.
Back in Storybrooke, Snow finds the original story book and it helps Henry retain his memories. Then when Regina kisses her son, it breaks the memory spell and everyone remembers.
When Zelena tries to kill Henry, Emma saves him but learns that Hook is cursed and didn't tell her in Once Upon A Time Season 3 Episode 19.
And if you need more magic, you can watch Once Upon a Time online here at TV Fanatic.