'Conjunction of two query {component_alias: filter_query} (AND)
@param first: the first dict
@param second: the second dict
@return: the combined dict'

def _and(self, first, second):

    if (not first):
        return second
    if (not second):
        return first
    result = dict(first)
    for (alias, subquery) in second.items():
        if (alias not in result):
            result[alias] = subquery
        else:
            result[alias] &= subquery
    return result
