The eight points below are the vertices and the midpoints of the sides of a square. We would like to draw a number of circles through the points, in such a way that each pair of points lie on (at least) one of the circles.
Determine the smallest number of circles needed to do this.
[asy]
unitsize(1 cm);dot((0,0));
dot((1,0));
dot((2,0));
dot((0,1));
dot((2,1));
dot((0,2));
dot((1,2));
dot((2,2));
[/asy]