Programming

edges

edge = edges[[2]]

Select[edges, 
      MemberQ[#1, edge[[1]]]&]

Flatten[
      Select[edges, 
        MemberQ[#1, edge[[1]]]&]]

Complement[
      Flatten[Select[edges, 
          MemberQ[#1, edge[[1]]]&]], 
      edge]

diagonalsNear[edge]

cubeedges

Flatten[diagonalsNear/@specialedges, 1]

(vertices[[#]]& /@ Flatten[diagonalsNear /@ specialedges,1]

(vertices[[#1]]&)/@
      Flatten[diagonalsNear/@specialedges, 1]

specialedges

cubefaces = 
      Module[{}, 
        face[edge_] := 
          (Flatten[diagonalsNear[edge]][[#1
                  ]]&)/@{1, 2, 4, 3}; 
        (face[#1]&)/@specialedges]

InCube /: Faces[InCube] = cubefaces; InCube /: Vertices[InCube] = vertices; InCube /: Edges[InCube] = cubeedges;

Show[surface[InCube], skeleton[Dodecahedron, blue, red], 
      ViewPoint -> {2.817, 1.560, 1.040}, Boxed -> False]