Here's the output of a Ruby program I wrote a couple of months ago to solve 
puzzles like this:

    cr cg cw cy cb nb ns nd nn ng bt bc bm bb bw zp zd zb zm zc pd pb pc ph pf
   +== == == == ==+== == == == ==+== == == == ==+== == == == ==+== == == == ==+
i1|-- -- -- ++ --|-- -- -- ++ --|-- -- -- -- ++|-- ++ -- -- --|-- -- ++ -- --|
i2|-- -- -- -- ++|-- -- ++ -- --|++ -- -- -- --|-- -- ++ -- --|-- -- -- ++ --|
i3|++ -- -- -- --|++ -- -- -- --|-- -- ++ -- --|++ -- -- -- --|-- ++ -- -- --|
i4|-- ++ -- -- --|-- -- -- -- ++|-- ++ -- -- --|-- -- -- -- ++|-- -- -- -- ++|
i5|-- -- ++ -- --|-- ++ -- -- --|-- -- -- ++ --|-- -- -- ++ --|++ -- -- -- --|
   +== == == == ==+== == == == ==+== == == == ==+== == == == ==+== == == == ==+
pd|-- -- ++ -- --|-- ++ -- -- --|-- -- -- ++ --|-- -- -- ++ --|
pb|++ -- -- -- --|++ -- -- -- --|-- -- ++ -- --|++ -- -- -- --|
pc|-- -- -- ++ --|-- -- -- ++ --|-- -- -- -- ++|-- ++ -- -- --|
ph|-- -- -- -- ++|-- -- ++ -- --|++ -- -- -- --|-- -- ++ -- --|
pf|-- ++ -- -- --|-- -- -- -- ++|-- ++ -- -- --|-- -- -- -- ++|
   +== == == == ==+== == == == ==+== == == == ==+== == == == ==+
zp|++ -- -- -- --|++ -- -- -- --|-- -- ++ -- --|
zd|-- -- -- ++ --|-- -- -- ++ --|-- -- -- -- ++|
zb|-- -- -- -- ++|-- -- ++ -- --|++ -- -- -- --|
zm|-- -- ++ -- --|-- ++ -- -- --|-- -- -- ++ --|
zc|-- ++ -- -- --|-- -- -- -- ++|-- ++ -- -- --|
   +== == == == ==+== == == == ==+== == == == ==+
bt|-- -- -- -- ++|-- -- ++ -- --|
bc|-- ++ -- -- --|-- -- -- -- ++|
bm|++ -- -- -- --|++ -- -- -- --|
bb|-- -- ++ -- --|-- ++ -- -- --|
bw|-- -- -- ++ --|-- -- -- ++ --|
   +== == == == ==+== == == == ==+
nb|++ -- -- -- --|
ns|-- -- ++ -- --|
nd|-- -- -- -- ++|
nn|-- -- -- ++ --|
ng|-- ++ -- -- --|
   +== == == == ==+

Legend:
i1 house 1  cr red     nb Brit       bt tea     zp Pall Mall    pd dogs
i2 house 2  cg green   ns Swede      bc coffee  zd Dunhill      pb birds
i3 house 3  cw white   nd Dane       bm milk    zb Blends       pc cats
i4 house 4  cy yellow  nn Norwegian  bb beer    zm Bluemasters  ph horse
i5 house 5  cb blue    ng German     bw water   zc Prince       pf fish

Regards,
Pit