Integer partition with symmetry

(* partition 2^dims among vertices of dims-dimensional cube *)
cubePartitions[dims_]:=(
d=(2^dims);
partitions=IntegerPartitions[d,{d},Range[0,d]];
group=DihedralGroup[d];
removeEquivalent[{}]:={};
removeEquivalent[list_]:=(
Sow[First[list]];
equivalents=Permute[First[list],#]&/@GroupElements[group];
DeleteCases[list,Alternatives@@equivalents]
);

nonequivalentPermutations[list_]:=(
reaped=Reap@FixedPoint[removeEquivalent,Permutations@list];
reaped[[2,1]]
);

Flatten[nonequivalentPermutations/@partitions,1]
);

cubePartitions[3]//Length

Plot for dims=2

graph=GraphData[{"Cycle",4}];
edges=EdgeList[graph];
verts=VertexList[graph];
vcoords=Thread[verts->VertexCoordinates/.AbsoluteOptions[graph]];
plotAss[ass_]:=(
labels=Style[#,{16,Bold}]&/@ass;
Graph[edges,VertexCoordinates->vcoords,VertexLabels->(Thread[verts->labels]),PlotRangePadding->.4]
);

plots=plotAss/@cubePartitions[2];
GraphicsGrid[Partition[plots,4]]