Combine results from different parsed parts:
            we look for non-empty results in values like
            'postal_code_b' or 'postal_code_c' and store
            them as main value.

            So 'postal_code_b':'123456'
                becomes:
               'postal_code'  :'123456'

def _combine_results(self, match_as_dict):
            '''Combine results from different parsed parts:
            we look for non-empty results in values like
            'postal_code_b' or 'postal_code_c' and store
            them as main value.

            So 'postal_code_b':'123456'
                becomes:
               'postal_code'  :'123456'
            '''
            keys = []
            vals = []
            for k, v in six.iteritems(match_as_dict):
                if k[-2:] in '_a_b_c_d_e_f_g_h_i_j_k_l_m':
                    if v:
                        # strip last 2 chars: '..._b' -> '...'
                        keys.append(k[:-2])
                        vals.append(v)
                else:
                    if k not in keys:
                        keys.append(k)
                        vals.append(v)
            return dict(zip(keys, vals))