I uploaded this game a while ago, but since it has been dead and coped for several months now I might as well post about it.
The controls are LMB to move, Z to undo, X to switch, and C to separate.
The core concepts of the game are Dijkstra's algorithm and the pair up mechanic from Fire Emblem Fates.
I had an idea for a simple story but I never made more than this demo room which has nothing to do aside from move around, and I didn't really add any puzzle mechanics like doors or flags.
I'm not sure if I would be able to design elegant puzzle mechanics or not, but I think full path reachability being shown is quite interesting and there's probably something I could do.
----
If I wanted to continue with this project, I would start from scratch and design the action stack and undo feature first, because I had a horrible time with that.
The animations are messed up and there are still bugs with the undo feature.
I would also not use SDL, because it's not enjoyable to use, although it's not that bad for 2D.
I at least learned how to build an SDL application for WebAssembly and I was impressed by how easy that was, but I'm sure you can do that with raylib and probably Godot or whatever else people use anyway.