Sadly this doesn't actually work like a db query, e.g `order by IPConnectionMetric, MacAddress`. The second sort_by doesn't preserve the ordering of the first sort_by. But we could do something like:

<pre>
nics.sort do |a,b| 
  cmp = a[:metric] &lt;=> b[:metric]
  cmp == 0 ? a[:mac] &lt;=> b[:mac] : cmp
end
</pre>

I'm also not clear about the relationship between IPConnectionMetric and GatewayCostMetric. Would it make sense to consider both metric, e.g. order by `GatewayCostMetric`, `IPConnectionMetric`, `MACAddress`? I assume the routing table takes both the ipconnection and gateway metrics into account when calculating the route metric, but am I'm not sure about that.