Consider a 3×3 grid. Now, look at the patterns which generate 1 to 7 dots around the edges, taking into account rotations and reflections. Turns out there are 49 patterns, as seen in the set below made with index cards and a hole punch.

By hand, I managed to lay out a 7×7 grid where all edges match.
Is it possible to do edge-matching on a cylinder or torus with this set?
A torus isn't possible because where 4 tile corners meet, you'll either have 0 or 4 dots. But the total number of corner dots isn't a multiple of 4.
A cylinder is possible.
Here's a solution where left/right wrapping is correct, but top/bottom wrapping has two errors: