Unfortunately the newer versions of the Combinatorica package use a different syntax for the Graph function and hence code written for the old version will no longer work;-( 
Evaluating the following two functions before your code should fix this!

Needs["DiscreteMath`Combinatorica`"]

This function converts the old syntax of Graph to the new one:

OldGraph[a_, b_] := 
      Block[{n = Dimensions[a][[1]], tmp1 = {}, 
          tmp2 = {}}, 
Do[
          Do[If[a[[i, j]] ≠ 0, 
              tmp1 = Append[
                  tmp1, {{i, j}, EdgeWeight -> a[[i, j]]}]], {i, 
              j}], {j, n}]; 
Do[
          tmp2 = Append[tmp2, {b[[i]]}], {i, 
            n}]; 
Graph[tmp1, 
          tmp2]
]

Now we can overload the Graph function such that the old syntax is automagically converted to the new one:

Graph[a_List, b_List] := 
      OldGraph[a, b]  /; 
        MatchQ[{Dimensions[a], 
            Dimensions[b]}, {{n_, n_}, {n_, 2}}]

Here is an example:

Graph[{{0, 1, 1, 1},  {1, 0, 0, 1},  {1, 0, 0, 1},  {1, 1, 1, 
          0}}, {{0, 0},  {1, 0},  {1, 1},  {0, 1}}]

ShowLabeledGraph[%];